package com.oraro.paygatewaybiz.module.entity;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 
 * 
 * @author jianghuiyong
 * @email 
 * @date 2018-11-16 16:34:25
 */
@TableName("pay_order")
@Data
public class OrderEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 支付订单ID
	 */
	@TableId(type = IdType.INPUT)
	private Long orderId;
	/**
	 * 商户
	 */
	@NotNull(message = "支付商户不能为空")
	private Long mchId;
	/**
	 * 商户订单
	 */
	@NotBlank(message = "商户订单号不能为空")
	private String outTradeNo;
	/**
	 * 订单总额(单位分)
	 */
	@NotNull(message = "订单金额不能为空")
	private Long totalFee;
	/**
	 * 货币类型
	 */
	private String feeType;
	/**
	 * 订单标题
	 */
	@NotBlank(message = "订单标题不能为空")
	private String subject;
	/**
	 * 订单描述
	 */
	@NotBlank(message = "订单描述不能为空")
	private String body;
	/**
	 * 商品ID (WX NATIVE)
	 */
	private String productId;
	/**
	 * 商品详情
	 */
	private String goodsDetail;
	/**
	 * 交易类型
	 */
	@NotBlank(message = "交易类型不能为空")
	private String tradeType;
	/**
	 * 第三方openid
	 */
	private String openid;
    /**
     * 渠道类型
     */
    private String channelType;
	/**
	 * 支付状态： 0:未支付  1:已支付
	 */
	private Integer payStatus;
	/**
	 * 交易开始时间
	 */
	@NotNull(message = "交易开始时间不能为空")
	private Date timeStart;
	/**
	 * 交易结束时间
	 */
	@NotNull(message = "交易结束时间不能为空")
	private Date timeEnd;
	/**
	 * 订单完成时间
	 */
	private  Date completeTime;

}
